package com.catmiao.rdd.operate.transform;

import com.google.common.collect.Lists;
import org.apache.spark.SparkConf;
import org.apache.spark.api.java.JavaRDD;
import org.apache.spark.api.java.JavaSparkContext;

/**
 * @author ChengMiao
 * @title: Transfer_01_Map
 * @projectName spark_study
 * @description: TODO
 * @date 2024/11/25 16:27
 */
public class Transfer_02_Map {

    public static void main(String[] args) {

        final SparkConf conf = new SparkConf();
        conf.setAppName("appName");
        conf.setMaster("local[*]");

        final JavaSparkContext jsc = new JavaSparkContext(conf);
        JavaRDD<Integer> rdd = jsc.parallelize(
                Lists.newArrayList(1, 2, 3, 4),
                2);

        /**
         *  默认情况下 新创建的rdd的分区刷领续与原rdd的分区一致
         */
        JavaRDD<Integer> rdd2 = rdd.map(x -> x * 2);
        rdd2.saveAsTextFile("java_out/03");

        /**
         * 数据流转过程中，数据所在的分区会如何变化?
         * - 默认情况下，数据流转的分区编号不变
         *
         * 数据流转的顺序
         * - 分区内有序，分区间无序
         *
         */



        jsc.close();
    }
}
